const authService = require('../services/authService');

class AuthController {
  /**
   * 用户登录
   * @param {*} ctx 
   */
  async login(ctx) {
    try {
      const { username, password } = ctx.request.body;
      const data = await authService.login({ username, password });

      ctx.body = { code: 200, data, message: '登录成功' };
    } catch (err) {
      if (err.message === '用户不存在') {
        ctx.body = { code: 404, message: '用户不存在', error: err.stack };
      } else if (err.message === '密码错误') {
        ctx.body = { code: 500, message: '用户名或密码错误', error: err.stack };
      } else {
        ctx.body = { code: 500, message: '服务器内部错误', error: err.stack };
        console.error('未处理的异常:', err.stack);
      }
    }
  }

  // TODO
  async register() { }

  /**
   * 修改密码
   * @param {*} ctx 
   */
  async changePassword(ctx) {
    try {
      const userId = ctx.params.id;
      const data = await authService.changePassword({
        userId, ...ctx.request.body
      });
      ctx.body = { code: 200, data, message: '密码修改成功' };
    } catch (error) {
      console.log('修改密码 error', error);

      const code = error.statusCode || 500;
      ctx.body = { code, message: 'Server：密码修改失败', error };
      console.log('修改密码', error.stack);
    }
  }

  async refresh(ctx) { }

  async logout(ctx) {
    log
    // try {
    //   //
    // } catch(error) {
    //   const code = error.statusCode || 500;
    //   ctx.body = { code, message: 'Server：登出失败', error };
    // }
  }
}

module.exports = new AuthController();